A typical digital communications network has a network architecture that is based upon the Open Systems Interconnection (OSI) Reference Model for providing communication between a multiplicity of interconnected digital end systems or “nodes.” The OSI Reference Model divides networking protocols into seven layers, which, in ascending order of abstraction, are: 1) the physical layer, 2) the data-link layer, 3) the network layer, 4) the transport layer, 5) the session layer, 6) the presentation layer, and 7) the application layer.
Local area networks (LANs), i.e., short-distance communications networks, operate at layer 2 in the OSI model. Routers operate at layer 3 in the OSI model and may connect two LANs or other types of networks having different protocols. More specifically, routers at the network layer terminate local data-link layer protocols and utilize network layer addresses and data frame restructuring to communicate with each other.
Internet Protocol (IP) is a typical layer 3 routing protocol. For IP routing, a router receives a packet and determines a next hop, i.e., the next destination for the received packet in the path towards the final packet destination. Typically, each router in the path to the final destination of the packet analyzes the packet header for identifying the packet's destination address and runs a routing algorithm for determining the next hop towards the identified destination address.
Multi-Protocol Label Switching (MPLS) optimizes conventional routing techniques by assigning labels to a Forwarding Equivalent Class (FEC). A FEC is defined as a set of packets that can be handled equivalently for the purpose of forwarding and thus is suitable for binding to a label. Once a binding between a FEC and a label is done, it is not necessary for each label switching router (LSR) in a label-switched path (LSP), i.e., a path through one or more LSRs followed by packets having the same FEC, to analyze a received packet's IP header for determining the packet's destination address. Instead, LSRs make forwarding decisions based on the label attached to the packet, and consequently, packets are routed through the network faster.
MPLS is being developed for high-speed networks that, for example, are used by some Internet-service providers (ISPs). MPLS is currently being standardized by the MPLS Working Group of the Internet Engineering Task Force (IETF).
FIG. 1 illustrates an MPLS packet having data-link header 8, MPLS shim header 7, IP header 6 and payload 5. MPLS uses shim header 7 located between the data-link layer header (i.e., data-link header 8) and the network layer header (i.e., IP header 6) in the MPLS packet for integrating IP routing with label switching. MPLS uses shim header 7 encapsulation shown in FIG. 1 for transporting IP Packets. MPLS can operate on any data-link layer media (e.g., ATM, FR, PPP), but MPLS currently serves only the IP client network layer. Shim header 7 generally includes a series of label stack entries. As shown in FIG. 1, a label stack entry contains a 20-bit label field 1, a 3-bit experimental field 2, a single bit field 3 indicating the bottom of the label stack and an 8-bit time-to-live (TTL) field 4.
Similar to conventional routing table entries, each LSR in a MPLS network may include a forwarding table having next hop label forwarding entries (NHLFEs). Each NHLFE, among other information, contains the physical interfaces or ports, the incoming label, and the outgoing label for the next hop for a received packet. A label in a label stack entry of a received packet is used as an index for retrieving a NHLFE containing the next hop for the received packet. Generally, the label from the label stack entry on the top of the label stack is used to index the NHLFEs in the LSR. After identifying the NHLFE for the next hop, the outgoing label for the next hop, which is retrieved from the identified NHLFE, is placed on top of the label stack for the packet, and the packet is transmitted to the next hop. This label switching technique is used by the LSRs for routing MPLS packets through the MPLS network.
FIG. 2 illustrates a reference topology for a typical MPLS network 45. MPLS network 45 includes a set of nodes or LSRs for performing MPLS routing and forwarding. The LSRs in MPLS network 45 include intermediate LSRs and label-edge routers, e.g., LER 1 and LER 2. The set of contiguous nodes that an MPLS packet traverses in the MPLS network is called a Label Switched Path (LSP).
MPLS network 45 includes a bi-directional traffic engineering trunk (BTT) 42 having two traffic engineering trunks with the same endpoints, i.e., LER 1 and LER 2, and opposite directions of transmission. The two traffic trunks that form BTT 42 traverse two unidirectional explicitly routed label-switched paths (ER-LSPs) between LER 1 and LER 2. An ER-LSP is a LSP defined by a management system or a single LSR that is typically the ingress LSR for that particular direction of transmission, e.g., LER 1 or LER 2. ER-LSPs are set up independent of IP shortest path routing algorithms. BTT 42 is formed of two traffic trunks traversing two ER-LSPs in opposite directions. One traffic trunk flows downstream from ingress LER 1 towards egress LER 2 on one ER-LSP. The other traffic trunk flows upstream from egress LER 2 towards ingress LER 1 on the other ER-LSP. Consequently, BTT 42 traverses a complete round-trip path between LER 1 and LER 2.
It is envisioned that ER-LSPs, which form BTTs, will be set up for carrying possibly hundreds to several thousands of individual IP flows. Hence, it is crucial to ascertain parameters of a BTT, such as connectivity, delay and other quality of service (QoS) parameters that may effect traffic flow in the BTT.
An in-band network management packet (INMP) is a packet that carries operation, administration and maintenance (OA&M) information. INMPs can be used for testing parameters of a BTT and sending OA&M commands to an LSR. U.S. patent application Ser. No. 09/589,464 describes two types of INMPs-test INMPs and command INMPs. A command INMP includes an OA&M command intended for a target LSR, which is a specific LSR targeted to receive the command INMP. Once the target LSR receives the command INMP, the LSR processes the INMP, e.g., by performing the command, and the INMP is terminated. A test INMP is used for testing parameters of a BTT. For example, a test IMLP, constructed by a LER, for testing delay and connectivity of BTT may be looped around a BTT. Each LSR in the path of the BTT receives and processes the INMP, for example, by performing a set of local operations. After processing the test INMP, the LSR receiving the test INMP transmits the test INMP to a next hop on the BTT. In the case of a loopback test, after the text INMP has been looped around the BTT and once the originating LER that originally constructed the test INMP receives the test INMP, the originating LER can ascertain delay of the BTT and whether the BTT is connected. Test INMPs may be used to test connectivity, delay and other QoS parameters.
An INMP for an MPLS network uses the same shim header 7 encapsulation that is used for an MPLS packet. An INMP, in addition to a shim header that includes a label, contains a payload, hereinafter referred to as an INMP payload. The protocol and structure of the aforementioned INMP payload is a matter for standardization and is not defined as part of this invention. However, a semantic associated with a “Switching Label Field” in the INMP payload is discussed in the following sections. Since INMPs are constructed by the service providers' LSRs and not the end-users of the network, an MPLS client layer-independent structure for the INMP messages is envisioned. Thus, INMPs can serve any client layer protocol, including IP. The advantage of this structure is that the proposed MPLS OA&M framework will be able to support any client layer including IP.
User data is conventionally carried in payload 5 of an MPLS packet. User data includes, for example, multimedia data (such as voice, fax, still and moving image, etc.), high-speed data or any user-generated information. Therefore, if an MPLS packet is an INMP, an LSR receiving the MPLS packet must have the capability to distinguish between an INMP and a user MPLS packet. For example, if a received MPLS packet is a user packet (i.e., a packet that contains user data in payload 5), the LSR receiving the packet simply determines the next hop for the packet and transmits the packet to the next hop without the need to read payload 5. However, if the packet is an INMP, the receiving LSR must read and process OA&M information in the INMP payload.
Hence, a need exists for providing LSRs with the capability to determine whether an MPLS packet is an INMP or a user packet.